package main

import (
	"fmt"
	"reflect"
)

type mth func(a, b float32) float32

func main() {
	reflectCall()
}

// reflectCall 反射调用方法
func reflectCall() {
	v := reflect.ValueOf(sum)
	var (
		a float32 = 1.0
		b float32 = 2.0
	)
	av := reflect.ValueOf(a)
	bv := reflect.ValueOf(b)
	call := v.Call([]reflect.Value{av, bv})
	fmt.Println(call[0].Interface().(float32))
}

func sum(a, b float32) float32 {
	return a + b
}
